/*
 *
 *
 */

#ifndef ITRANSPORT_H_
#define ITRANSPORT_H_

#include <iostream>
#include <memory>
#include "zlbase/datalink/IBaseDatalink.h"

namespace zl {
namespace zlbase {

/// \brief 通信接口类
///
/// 该接口类是一个通信协议的接口类，主要用于定义常用通信协议的一个共同行为
/// 比如获取协议版本号，日期等
class ITransport
{
public:
    virtual ~ITransport() = default;

    /// \brief 获取协议版本号
	///
	/// 该接口用于返回协议本身的版本号，即协议文档制定时的版本号
    virtual std::string Version() = 0;

    /// \brief 连接
    virtual int32_t Connect() = 0;

    /// \brief 断开连接
    virtual int32_t Disconnect() = 0;

};

}
}

#endif // ITRANSPORT_H_
